diff --git a/system/application/config/autoload.php b/system/application/config/autoload.php
index b99ffe4..8e896d0 100644
--- a/system/application/config/autoload.php
+++ b/system/application/config/autoload.php
@@ -111,17 +111,6 @@
 $autoload['model'] = array();
 
 
-/*
-| -------------------------------------------------------------------
-|  Auto-load Core Libraries
-| -------------------------------------------------------------------
-|
-| DEPRECATED:  Use $autoload['libraries'] above instead.
-|
-*/
-// $autoload['core'] = array();
-
-
 
 /* End of file autoload.php */
 /* Location: ./system/application/config/autoload.php */
\ No newline at end of file
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 07c19c5..866b956 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1218,7 +1218,7 @@
 			
 			// Does the first segment of the exploded item match
 			// one of the aliases previously identified?  If so,
-			// we have nothing more to do other then escape the item
+			// we have nothing more to do other than escape the item
 			if (in_array($parts[0], $this->ar_aliased_tables))
 			{				
 				if ($protect_identifiers === TRUE)
diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php
index f1bb25b..d3cc7f1 100644
--- a/system/helpers/typography_helper.php
+++ b/system/helpers/typography_helper.php
@@ -54,17 +54,16 @@
  *
  * @access	public
  * @param	string
- * @param	bool	whether to allow javascript event handlers
  * @param	bool	whether to reduce multiple instances of double newlines to two
  * @return	string
  */
 if ( ! function_exists('auto_typography'))
 {
-	function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE)
+	function auto_typography($str, $reduce_linebreaks = FALSE)
 	{
 		$CI =& get_instance();	
 		$CI->load->library('typography');
-		return $CI->typography->auto_typography($str, $strip_js_event_handlers, $reduce_linebreaks);
+		return $CI->typography->auto_typography($str, $reduce_linebreaks);
 	}
 }
 
diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php
index 0ee6a24..5a97da7 100644
--- a/system/libraries/Typography.php
+++ b/system/libraries/Typography.php
@@ -59,11 +59,10 @@
 	 *
 	 * @access	public
 	 * @param	string
-	 * @param	bool	whether to strip javascript event handlers for security
 	 * @param	bool	whether to reduce more then two consecutive newlines to two
 	 * @return	string
 	 */
-	function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE)
+	function auto_typography($str, $reduce_linebreaks = FALSE)
 	{
 		if ($str == '')
 		{
@@ -81,13 +80,7 @@
 		if ($reduce_linebreaks === TRUE)
 		{
 			$str = preg_replace("/\n\n+/", "\n\n", $str);
-		}
-		
-		 // Do we allow JavaScript event handlers? If not, we strip them from within all tags
-		if ($strip_js_event_handlers === TRUE)
-		{
-			$str = preg_replace("#<([^><]+?)([^a-z_\-]on\w*|xmlns)(\s*=\s*[^><]*)([><]*)#i", "<\\1\\4", $str);
-		}       
+		} 
 
 		// Convert quotes within tags to temporary markers. We don't want quotes converted 
 		// within tags so we'll temporarily convert them to {@DQ} and {@SQ}
diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html
index 8485c7d..196c83b 100644
--- a/user_guide/libraries/form_validation.html
+++ b/user_guide/libraries/form_validation.html
@@ -561,7 +561,7 @@
 
 <p><strong>To invoke a callback just put the function name in a rule, with "callback_" as the rule prefix.</strong></p>
 
-<p>You can also process the form data that is passed to your callback and return it.  If your callback returns anything other then a boolean TRUE/FALSE
+<p>You can also process the form data that is passed to your callback and return it.  If your callback returns anything other than a boolean TRUE/FALSE
 it is assumed that the data is your newly processed form data.</p>
 
 
diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html
index 60a2fe2..c40f44a 100644
--- a/user_guide/libraries/loader.html
+++ b/user_guide/libraries/loader.html
@@ -127,7 +127,7 @@
 <p>This function is used to load your View files.  If you haven't read the <a href="../general/views.html">Views</a> section of the
 user guide it is recommended that you do since it shows you how this function is typically used.</p>
 
-<p>The first parameter is required.  It is the name of the view file you would like to load. &nbsp;Note: The .php file extension does not need to be specified unless you use something other then <kbd>.php</kbd>.</p>
+<p>The first parameter is required.  It is the name of the view file you would like to load. &nbsp;Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p>
 
 <p>The second <strong>optional</strong> parameter can take
 an associative array or an object as input, which it runs through the PHP <a href="http://www.php.net/extract">extract</a> function to
diff --git a/user_guide/libraries/typography.html b/user_guide/libraries/typography.html
index 2921905..cd16101 100644
--- a/user_guide/libraries/typography.html
+++ b/user_guide/libraries/typography.html
@@ -91,16 +91,11 @@
 
 <h3>Parameters</h3>
 
-<p>There are two optional parameters:</p>
+<p>There is one optional parameters that determines whether the parser should reduce more then two consecutive linebreaks down to two. Use bolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.
 
-<ol>
-	<li><strong>Strip JavaScript Event Handlers</strong>. Determines whether the parser should strip all JavaScript event handlers for security.  Use bolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.</li>
-	<li><strong>Reduce Linebreaks</strong>.  Determines whether the parser should reduce more then two consecutive linebreaks down to two. Use bolean <kbd>TRUE</kbd> or <kbd>FALSE</kbd>.</li>
-</ol>
+<p>By default the parser does not reduce line breaks. In other words, if no parameters are submitted, it is the same as doing this:</p>
 
-<p>By default the parser strips JS Event handlers and does not reduce line breaks. In other words, if no parameters are submitted, it is the same as doing this:</p>
-
-<code>$string = $this->typography->auto_typography($string, <kbd>TRUE</kbd>, <kbd>FALSE</kbd>);</code>
+<code>$string = $this->typography->auto_typography($string, <kbd>FALSE</kbd>);</code>
 
 
 <p class="important"><strong>Note:</strong> Typographic formatting can be processor intensive, particularly if you have a lot of content being formatted.
